Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.01.2013, 12:30
Liv Liv вне форума
Интересующийся
Отправить личное сообщение для Liv Посмотреть профиль Найти все сообщения от Liv
 
Регистрация: 22.03.2012
Сообщений: 17

Ошибка вызова $.ajax
Всю голову сломал!
Есть функция:
// act - идентификатор действия
// dat - передаваемые данные
// div - контейнер, куда заливается новый код
// dop - дополнительные данные
function getData(act,dat,div,dop) {
	var ret = $.ajax({
			type: "POST",
			url: "request.php",
			dataType: "html",
			async:false,
			data: ({'action':act,'dat':dat,'dop':dop})
		}).responseText;
	var el = document.getElementById(div);
	$(el).html(ret);
}

При вызове функции вылетает ошибка: Uncaught exception: TypeError: '$.ajax' is not a function
Рядом тот же ajax нормально работает в другой функции:
// ident - идентифкатор подсказки
function showhelp(ident) {
	$("#help").html(
		$.ajax({
			type: "POST",
			url: "request.php",
			dataType: "html",
			async:false,
			data: ({
				'action':'help',
				'ident':ident
			})
		}).responseText
	);
	$("#help").show("fast");
}

НО! Пытался поместить в функцию getData вызов ajax из функции showhelp - появляется та же ошибка! Никаких ошибок перед вызовом функции getData не происходит.... Где копать? В каком направлении? Может кто-нибудь сталкивался с подобным?
Ответить с цитированием
  #2 (permalink)  
Старый 17.01.2013, 12:55
Аватар для keen
Профессор
Отправить личное сообщение для keen Посмотреть профиль Найти все сообщения от keen
 
Регистрация: 28.03.2012
Сообщений: 376

а что если вывести typeof $.ajax в обоих случаях?)
Ответить с цитированием
  #3 (permalink)  
Старый 17.01.2013, 13:48
Liv Liv вне форума
Интересующийся
Отправить личное сообщение для Liv Посмотреть профиль Найти все сообщения от Liv
 
Регистрация: 22.03.2012
Сообщений: 17

tapeof выводит undefined!
Когда переместил вызов
<script type="text/javascript" src="js/jquery.js"></script>

в конец - заработало!... но это же не нормально! Что может быть не так?
Ответить с цитированием
  #4 (permalink)  
Старый 17.01.2013, 13:50
Liv Liv вне форума
Интересующийся
Отправить личное сообщение для Liv Посмотреть профиль Найти все сообщения от Liv
 
Регистрация: 22.03.2012
Сообщений: 17

И ещё: периодически слетает функция $() это уже вообще не лезет ни в какие ворота
Ответить с цитированием
  #5 (permalink)  
Старый 17.01.2013, 14:13
Аватар для keen
Профессор
Отправить личное сообщение для keen Посмотреть профиль Найти все сообщения от keen
 
Регистрация: 28.03.2012
Сообщений: 376

возможно кто-то где-то её переопределяет.
Ответить с цитированием
  #6 (permalink)  
Старый 17.01.2013, 14:31
Аватар для ОлегА
Профессор
Отправить личное сообщение для ОлегА Посмотреть профиль Найти все сообщения от ОлегА
 
Регистрация: 25.08.2011
Сообщений: 420

у вас эта функция вызывается перед определением
<script type="text/javascript" src="js/jquery.js"></script>
, а другая функция видимо уже после, поэтому одна работает, а другая нет, посмотрите в какой момент у вас запускается функция и определите момент когда у вас запускается
<script type="text/javascript" src="js/jquery.js"></script>
, но возможно и то что $() где то у вас переопределяется
Ответить с цитированием
  #7 (permalink)  
Старый 17.01.2013, 16:57
Liv Liv вне форума
Интересующийся
Отправить личное сообщение для Liv Посмотреть профиль Найти все сообщения от Liv
 
Регистрация: 22.03.2012
Сообщений: 17

Первоначально определение jquery находилось в заголовках страницы.... сейчас я поместил ее в футер - в конец... работает надёжнее (оооочень странно!)
Функция $() нигде не переопределяется. Имееются только 2 файла с JS - собственно jquery и общий файл функций JS, где и находятся всё функции сайта.
Ответить с цитированием
  #8 (permalink)  
Старый 17.01.2013, 17:36
Liv Liv вне форума
Интересующийся
Отправить личное сообщение для Liv Посмотреть профиль Найти все сообщения от Liv
 
Регистрация: 22.03.2012
Сообщений: 17

Благодарю всех ответивших! Особенно ОлегА за то, что пнул меня в нужном направлении. Я не утверждаю, что я остолоп, но что-то в этом есть!
Проблема была в том, что в нескольких местах (!!!) оказались втиснуты ссылки на lightbox, а именно они и пытались переопределить функции jquery
После изменения порядка определения скриптов всё заработало... )
Еще раз спасибо!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с $.ajax Iesua jQuery 5 14.07.2012 17:17
firebug пишет ошибка invalid range in character class Dim@ Общие вопросы Javascript 5 10.05.2012 16:52
То-ли лыжи не едут, толи... возможно ошибка в коде. AzriMan Общие вопросы Javascript 19 18.05.2009 16:07
Ошибка вызова замыкания Андрей Параничев Общие вопросы Javascript 8 01.10.2008 21:16
IE: неизвестная ошибка выполнения _Kpot_ Internet Explorer 1 03.04.2008 11:00